<?php	

		function verif_date( $date)
		{
			return (preg_match( '`^\d{4}-\d{2}-\d{2}$`' , $date));
		}

		function verif_mail($email)
		{
			$atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   	// caractères autorisés avant l'arobase
			$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; 	// caractères autorisés après l'arobase (nom de domaine)                          
			$regex = '/^' . $atom . '+' .   				// Une ou plusieurs fois les caractères autorisés avant l'arobase
					'(\.' . $atom . '+)*' . 				// Suivis par zéro point ou plus
															//séparés par des caractères autorisés avant l'arobase
					'@' .  									// Suivis d'un arobase
					'(' . $domain . '{1,63}\.)+' .  		// Suivis par 1 à 63 caractères autorisés pour le nom de domaine
															// séparés par des points
					$domain . '{2,63}$/i';          		// Suivi de 2 à 63 caractères autorisés pour le nom de domaine

			// test de l'adresse e-mail
			return (preg_match($regex, $email));
		}

		function	affectation($champ) 
		{
			if (isset($_POST[$champ]))
			{
				if (strcasecmp($_POST[$champ], '') != 0 &&
					strcasecmp($_POST[$champ], 'AAAA-MM-JJ') != 0)
					$_SESSION[$champ] = htmlspecialchars($_POST[$champ]);
				else
					$_SESSION[$champ] = '';
			}
			else
				$_SESSION[$champ] = '';
		}
		
		function	verif_post($pfunc) 
		{
			$champ = array('prenom', 'nom', 'bday', 'sexe', 'mail', 'mdp', 'ville');
			for ($i = 0;$i < 7; $i++)
			{	
				$pfunc($champ[$i]);
			}
		}	
	
		function	affect_msg($champ)
		{
			if (strcasecmp($_SESSION[$champ], '') == 0)
				$_SESSION['message'] .= 'Votre ' . $champ . "<br>";
			else if(strcasecmp($champ, 'mail') == 0)
			{
				if (verif_mail($_SESSION['mail']))
					$_SESSION['message'] .= "Votre mail (email invalide)<br>";		
			}
			else if (strcasecmp($champ, 'bday') == 0)
			{
				if (verif_date($_SESSION['bday']))
					$_SESSION['message'] .= "Votre date de naissance<br>";
			}
		}
		
		function	verif_msg($pfunc)
		{		
			$champ = array('prenom', 'nom', 'bday', 'sexe', 'mail', 'mdp', 'ville');
			for ($i = 0; $i <7 ; $i++)
			{	
				$pfunc($champ[$i]);
			}
		}
		
		function	tri_id($bdd)
		{
			$req1 = $bdd->prepare('SELECT COUNT(id) AS nb FROM users') or die(print_r($bdd->errorInfo()));
			$req1->execute();
			$nb_id = $req1->fetch(PDO::FETCH_ASSOC);
			$req1->closeCursor();
			$req2 = $bdd->prepare('SELECT id FROM users') or die(print_r($bdd->errorInfo()));
			$req2->execute();
			$data = $req2->fetchAll();
			$req2->closeCursor();
			$req3 = $bdd->prepare('UPDATE users SET id=:new_id WHERE id=:id_actuel') or die(print_r($bdd->errorInfo()));;
			for($i = 0; $i < $nb_id['nb']; $i++)
			{
				$new_id = sprintf("%d", $i);
				$id_actuel = sprintf("%d", $data[$i]['id']);
				$req3->execute(array(
					'new_id' => $new_id,
					'id_actuel' => $id_actuel
				));
			}
			$req3->closeCursor();
		}
		
		function session_affectation($data)
		{
			$champ = array('prenom', 'nom', 'bday', 'sexe', 'mail', 'mdp', 'ville');
			for ($i = 0; $i <7 ; $i++)
			{	
				$__champ = $champ[$i];
				$_SESSION[$__champ] = $data[$__champ];
			}
		}
		
		function is_exist($bdd, $mail)
		{
			$req = $bdd->prepare('SELECT count( * ) AS nb FROM users WHERE mail =' . $mail);
			$req->execute();
			$nb = $req->fetch(PDO::FETCH_ASSOC);
			$req->closeCursor();
			if ($nb == 1)
				return (true);
			else
				return (false);
		}
?>
